1. Field of the Invention
This invention relates to computer implemented systems and methods for indicating the progress of a computer process. Particularly, the invention relates to systems and methods indicating the progress of a computer process through a graphical user interface (GUI).
2. Description of the Related Art
Progress bars are a well known visual indicator used in almost every type of software, and particularly those which employ a graphical user interface (GUI). For example, progress bars are commonly used to indicate the progress of a software installation or the progress of a copy or file transfer process.
FIG. 1 illustrates a typical progress bar 100 employed in the GUI 102 of a display 104 for a typical computer operating system. The progress bar 100 may be shown in a window of a running software application 106 which is performing an automated process such as downloading a file, installing a software application or performing a database query. As the automated process progresses, the length of the bar 100 increases such that the position of the leading edge 108 of the bar 100 between the start position 110 and the end position 112 indicates the current portion of the process completed.
The scale of the conventional progress bar (the length from the start position 110 to the end position 112) corresponds linearly to some measure of the process being performed. For example, if the automated computer process is downloading a file, the scale typically corresponds to the size of the file being downloaded. Thus, the progress bar tracks the portion of the file that has been downloaded so far. Similarly, in a software installation, the scale may correspond to the total size or number of files which are being copied to the system or even the total number of operations that must be performed to complete the installation. In many cases, the scale of conventional progress bars are often not shown, eliminating meaningful information and leaving the user completely ignorant of what they actually represent. In addition, multiple automated processes may sometimes be performed in series, each showing a separate progress bar. In this case, the progress bar is even less meaningful to the user who has no idea how many progress bar animations must be viewed from start to finish before the overall process is actually completed. In a worst case, a conventional progress bar only serves to inform the user that some “progress” is being made.
Supplemental data is sometimes provided with conventional progress bars as well. For example, values 114 for the completed portion and total size may also be shown, and be regularly updated. In addition, an updated estimate of the remaining time 116 as well as an estimate of the overall transfer rate 118 may also be shown. Importantly, these values are typically calculated from overall progress and represent a running average of the process performance; they do not present instantaneous information corresponding to process performance at a particular moment in time. The application 106 simply tracks the total amount of time that has expired since starting and applies this to the completed portion of the process to determine the average rate. This average rate is then assumed for the remaining portion (the completed portion subtracted from the total size) and used to determine the estimated time left for the automated process.
Employing a running average rather than an instantaneous rate means the displayed rate 116 can often be particularly deceptive to the user. For example, an automated process may become stalled such that the instantaneous rate is zero. However, because the rate shown is a running average, this may not be immediately apparent to the user. The displayed rate will simply begin to decline as the transpired time increase with no change in the completed portion. Accordingly, it is often necessary for the user to monitor a conventional progress bar display for a period of time to make a full determination of how the process is proceeding.
A conventional progress bar also provides no graphical presentation related to the rate of completion (either instantaneous or a running average) or time remaining. Although some computer processes, such as a file download, may display a rate and sometimes an estimated completion time as updated values, these values are separate from the graphical display of the progress bar which only tracks the state of the process completion. There is no graphical display which includes such time-based information, such as rate or remaining time.
Thus, there are no widespread solutions in use today that address these issues. Some processes may display a rate of completion, e.g., a file transfer process may display a current transfer rate as a number in Mbps. However, the transfer rate value is not graphical and provides only instantaneous information as it is constantly changing. In addition, such conventional displays do not provide any instantaneous rate information, including historical rate information. Similarly, a remaining time estimate is displayed only as a changing number and presents the same limitations.
In view of the foregoing, there is a need for systems and methods that provide meaningful information to users regarding the progress of an automated computer process. There is also a need in the art for such systems and methods to provide prospective as well as historical information regarding the progress of the automated computer process. There is a need for this information to be displayed in a graphical display that may be readily interpreted by a user. Further, there is a need for such systems and methods to provide a graphical graphical time-based information regarding the automated computer process, such as process rate or remaining time information. There is still further a need for such systems and methods to provide instantaneous process rate information, including historical process rate information. As detailed hereafter, these and other needs are met by the present invention.